package Controlador;

import java.util.ArrayList;
import java.util.List;

import modelo.*;

public class Sistema {
	private List<Materia> materias;
	private List<Alumno> alumnos;
	private List<Curso> cursos;
	private List<Profesor> profesores;
	
	public Sistema(){
		this.materias = new ArrayList<Materia>();
		this.alumnos = new ArrayList<Alumno>();
		this.cursos = new ArrayList<Curso>();
		this.profesores = new ArrayList<Profesor>();
	}
	

	public List<Alumno> getAlumnos() {
		return alumnos;
	}


	public void setAlumnos(List<Alumno> alumnos) {
		this.alumnos = alumnos;
	}



	public Materia buscarMateria(String nro){
		for(Materia materia: materias){
			if(materia.getNumero().equalsIgnoreCase(nro))
				return materia;
		}	
		return null;
	}
	
	public Alumno buscarAlumno(int legajo){
		for(Alumno alumno: alumnos){
			if(alumno.getLegajo() == legajo)
				return alumno;
		}	
		return null;
	}
	
	public Profesor buscarProfesor(int legajo){
		for(Profesor profesor: profesores){
			if(profesor.getNroLegajo() == legajo)
				return profesor;
		}	
		return null;
	}
	
	public Curso buscarCurso(int numero){
		for(Curso curso: cursos){
			if(curso.getNumero() == numero)
				return curso;
		}	
		return null;
	}
	
	public void crearCurso(Materia materia,Profesor profesor,int cantMax){
		Curso curso = new Curso();
		curso.setNumero(45);
		curso.setCapacidad(cantMax);
		curso.setMateria(materia);
		curso.setProfesor(profesor);
		this.cursos.add(curso);
	}
	
	public void eliminarCurso(Curso curso){
		try{this.cursos.remove(curso);}
		catch(Exception e){System.out.println("No existe el curso a eliminar");};
	}
	
	public void asignarAlumnoACurso (Alumno alumno,Curso curso){
		try {
			for(Curso cur: cursos){
				if(cur.getNumero() == curso.getNumero())
					cur.agregarAlumno(alumno);
			}
		} catch (Exception e) {
			System.out.println("No se pudo agregar el alumno al curso");
		}
	}
	
	public void eliminarAlumnoDeCurso(Alumno alumno,Curso curso){
		try {
			for(Curso cur: cursos){
				if(cur.getNumero() == curso.getNumero())
					cur.eliminarAlumno(alumno);
			}
		} catch (Exception e) {
			System.out.println("No se pudo quitar el alumno del curso");
		}
	}
	
	public void AsignarMateriaAProfesor (Materia materia,Profesor profesor){
		try {
			for(Profesor profe: profesores){
				profe.agregarMateria(materia);
			}
		} catch (Exception e) {
			System.out.println("No se pudo agregar la materia al profesor");
		}
	}
	public void agregarMateria(Materia materia){
		this.materias.add(materia);
	}
	public void agregarAlumno(Alumno alumno){
		this.alumnos.add(alumno);
	}
	public void agregarProfesor(Profesor profesor){
		this.profesores.add(profesor);
	}
	
	
	
	
}
